package com.erp.order.mapper;

import com.erp.order.domain.ErpCollectProductSkuPackageInfo;
import com.ruoyi.order.api.domain.ErpSellerChildOrder;
import com.ruoyi.order.api.domain.dto.EvaluationDto;
import com.erp.order.domain.vo.ErpSellerChildOrderSelVo;
import com.erp.order.domain.vo.ErpSellerChildOrderVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.order.api.domain.ErpSellerChildOrder;
import com.ruoyi.order.api.domain.dto.EvaluationDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商户子订单Mapper接口
 *
 * @author erp
 * @date 2023-03-28
 */
public interface ErpSellerChildOrderMapper extends BaseMapperPlus<ErpSellerChildOrderMapper, ErpSellerChildOrder, ErpSellerChildOrderVo> {

    public List<ErpCollectProductSkuPackageInfo> getChildOrderSkuCode(@Param("orderId") Long orderId);

//    public List<DeclareProductDTOS> selectChildOrderListByChildOrderIds(@Param("childIds") String[] childIds);
//
    /**
     * 根据订单号获取子订单数量
     *
     * @param orderId
     * @return
     */
    Integer getChildCountByOrderId(@Param("orderId") Long orderId);
//
//    List<String> getChildOrderIdProduct(@Param("orderId") Long orderId);
//
//    List<ErpSellerChildOrder> selectFeeRateAndCodeErrorList();
//
    List<ErpSellerChildOrderSelVo> selectChildOrderListByOrderId(@Param("orderId") Long orderId);

    /**
     * @param skuCode skuCode
     * @param type    0：三天；1:7天；2:30天
     * @return
     */
    String selectSkuCountByTime(@Param("skuCode") String skuCode, @Param("type") String type);

    String selectViolationRate(@Param("skuCode") String skuCode);
//
//    List<ErpSellerChildOrder> getOrdersToday(@Param("storeUserName") String storeUserName);
//

    /**
     * 根据店铺cn码查看过去几天是否有订单
     * @param beforeDay
     * @param storeUserName
     * @param shieldProductIdList
     * @return
     */
    List<ErpSellerChildOrder> getOrdersByDay(@Param("beforeDay") Integer beforeDay,
                                             @Param("storeUserName") String storeUserName,
                                             @Param("list") List<String> shieldProductIdList);
//
//
    /**
     * 加购
     */
    EvaluationDto selectProductTips(@Param("productId") Long productId);

    /**
     * 收藏
     */
    EvaluationDto selectWishlists(@Param("productId") Long productId);

    /**
     * 访客
     *
     * @param productId
     * @return
     */
    EvaluationDto selectVisitors(@Param("productId") Long productId);

    /**
     * 出单量
     * @param productId
     * @return
     */
    EvaluationDto selectOutOrder(@Param("productId") Long productId);
//
//    String selectCountBySkuCode(@Param("storeUserName") String storeUserName, @Param("skuCode") String skuCode);
//
    Integer selectIsEvaluationBySkuCode(@Param("storeUserName") String storeUserName, @Param("skuCode") String skuCode);
//
//    List<ErpSellerChildOrder> getOrdersTodayGroup(@Param("storeUserName") String storeUserName);
//
//    int selectBeforeByCode(@Param("storeUserName") String storeUserName, @Param("skuCode") String skuCode);
//
//    List<ProductInfoModuleDto> selectProductIdByStoreId(@Param("source") Integer productSource, @Param("storeUserName") String storeUserName, @Param("limit") Integer limit, @Param("list") List<ProductInfoModuleDto> productInfoModuleDtoList);
//
//    List<ProductInfoModuleDto> selectVisitorsByStoreId(@Param("source") Integer productSource, @Param("storeId") Long storeId, @Param("limit") Integer limit, @Param("list") List<ProductInfoModuleDto> productInfoModuleDtoList);
//
//    List<EvaluationDto> selectOrderCount(@Param("storeId") Long storeId, @Param("type") Integer type, @Param("list") List<Long> productExpandList, @Param("limit") Integer limit);
//
//    List<EvaluationDto> selectVisitorsByProductIds(@Param("type") Integer type, @Param("list") List<Long> productExpandList, @Param("limit") Integer limit);
//
//    List<ErpAutoPriceOffProductProjectDto> queryAutoPriceOffProductProjectDto(@Param("project") ErpAutoPriceOffProductProject project);
//
//    List<ErpNeedPriceProductInfoDto> selectNeedPriceRiseProductInfo(@Param("storeUserName") String storeUserName, @Param("payTime") String payTime);
//
//
//    List<ErpSellerChildOrder> selectProductOrderListByTime(@Param("aeProductId") Long aeProductId, @Param("payTime") String payTime);
//
//    List<ErpNeedPriceProductInfoDto> selectNeedPriceOffProductInfo(@Param("storeId") Long storeId, @Param("priceOffPeriod") Integer priceOffPeriod, @Param("statisticalPeriod") Integer statisticalPeriod);
//
//    List<EvaluationDto> selectVisitorsByProductIds(@Param("storeId") Long storeId, @Param("type") Integer type, @Param("list") List<Long> productExpandList, @Param("limit") Integer limit);
//
    Integer judgeOutOrders(@Param("modelReplace") Integer modelReplace, @Param("list") List<String> productIdList);

    ErpSellerChildOrder getLatestByProduct(@Param("aeProductId") Long aeProductId);
}
